-
Notifications
You must be signed in to change notification settings - Fork 512
realm: new package #2941
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
realm: new package #2941
Conversation
2d02c3e to
a0674ec
Compare
|
Let us know when you want a deep review. In principle this should be fine, but I haven't spent any substantial time looking at the code yet. |
|
@muraj @elliottslaughter I'm currently building about 56 different combinations of Realm to test out this branch, only 19 of which are currently passing with this branch: https://github.com/rbberger/realm/tree/kokkos_cmake_refactor. Basically my branch puts the kokkos parts into their own subdirectory, creates a I hope we can make some progress on this in the coming days/weeks. Part of the combinations might have to be excluded, protected against. Others are exposing various bugs or CMake problems. E.g., asserts are still broken with HIP. It would be great if some part of this testing could become part of Realm/Legion regular testing, here is my current Spack environment file: spack:
specs:
- matrix:
- [realm]
- [~openmp, +openmp]
- [+cuda cuda_arch=86 +cuda_unsupported_compiler]
- [+shared, ~shared]
- ['%cxx=gcc', '%cxx=clang']
- [~kokkos, +kokkos ^kokkos+wrapper~cmake_lang, +kokkos ^kokkos~wrapper~cmake_lang %cxx=clang, +kokkos ^kokkos+cmake_lang~wrapper %gcc, +kokkos ^kokkos+cmake_lang~wrapper %cxx=clang]
- matrix:
- [realm]
- [~openmp, +openmp]
- [+rocm amdgpu_target=gfx942]
- [+shared, ~shared]
- [~kokkos, +kokkos]
- ['%cxx=gcc', '%cxx=clang']
view: false
concretizer:
unify: false
packages:
realm:
require:
- "@git.kokkos_cmake_refactor=main"
package_attributes:
git: https://github.com/rbberger/realm.git
llvm:
require:
- "@20"
externals:
- spec: [email protected]+clang+flang~lld~lldb
prefix: /usr
extra_attributes:
compilers:
c: /usr/bin/clang-20
cxx: /usr/bin/clang++-20
fortran: /usr/bin/flang-20
llvm-amdgpu:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3/lib/llvm
buildable: false
gcc:
require:
- "@13"
externals:
- spec: [email protected] languages:='c,c++,fortran'
prefix: /usr
extra_attributes:
compilers:
c: /usr/bin/gcc
cxx: /usr/bin/g++
fortran: /usr/bin/gfortran
kokkos:
require: '@4.7.02'
kokkos-nvcc-wrapper:
require: '@4.7.02'
cmake:
externals:
- spec: [email protected]
prefix: /usr
buildable: false
cuda:
require:
- '@12.8 +allow-unsupported-compilers'
externals:
- spec: [email protected] +allow-unsupported-compilers
prefix: /usr/local/cuda-12.8
buildable: false
hip:
version: [6.4.3]
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false
hsa-rocr-dev:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false
rocsolver:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false
rocblas:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false
rocthrust:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false
rocprim:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false
rocsparse:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false
rocrand:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false
rocm-smi-lib:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false
rocprofiler-dev:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false
roctracer-dev:
externals:
- spec: [email protected]
prefix: /opt/rocm-6.4.3
buildable: false |
|
I just merged StanfordLegion/realm#384 which is working for me on Frontier and I believe should fix the HIP asserts. Otherwise if there are code coverage changes we can apply directly in Realm CI, that would be welcome so that we can catch more of this upstream. Right now I'm running through a similar process with Legion to catch issues not captured in Realm's CI. |
|
|
|
@spackbot fix style |
|
Let me see if I can fix that for you! |
|
I was able to run spack style --fixrepos/spack_repo/builtin/packages/amdsmi/package.py
repos/spack_repo/builtin/packages/amrex/package.py
repos/spack_repo/builtin/packages/arkouda/package.py
repos/spack_repo/builtin/packages/asio/package.py
repos/spack_repo/builtin/packages/aws_ofi_nccl/package.py
repos/spack_repo/builtin/packages/bbmap/package.py
repos/spack_repo/builtin/packages/blast_plus/package.py
repos/spack_repo/builtin/packages/blt/package.py
repos/spack_repo/builtin/packages/boost/package.py
repos/spack_repo/builtin/packages/capstone/package.py
repos/spack_repo/builtin/packages/care/package.py
repos/spack_repo/builtin/packages/chai/package.py
repos/spack_repo/builtin/packages/cmake/package.py
repos/spack_repo/builtin/packages/comgr/package.py
repos/spack_repo/builtin/packages/composable_kernel/package.py
repos/spack_repo/builtin/packages/cp2k/package.py
repos/spack_repo/builtin/packages/curl/package.py
repos/spack_repo/builtin/packages/dd4hep/package.py
repos/spack_repo/builtin/packages/diffutils/package.py
repos/spack_repo/builtin/packages/edm4hep/package.py
repos/spack_repo/builtin/packages/esmf/package.py
repos/spack_repo/builtin/packages/fairmq/package.py
repos/spack_repo/builtin/packages/fenics_ufcx/package.py
repos/spack_repo/builtin/packages/fzf/package.py
repos/spack_repo/builtin/packages/glow/package.py
repos/spack_repo/builtin/packages/greenx/package.py
repos/spack_repo/builtin/packages/hdf_eos2/package.py
repos/spack_repo/builtin/packages/highfive/package.py
repos/spack_repo/builtin/packages/hip/package.py
repos/spack_repo/builtin/packages/hip_tensor/package.py
repos/spack_repo/builtin/packages/hip_tests/package.py
repos/spack_repo/builtin/packages/hipblas/package.py
repos/spack_repo/builtin/packages/hipblas_common/package.py
repos/spack_repo/builtin/packages/hipblaslt/package.py
repos/spack_repo/builtin/packages/hipcc/package.py
repos/spack_repo/builtin/packages/hipcub/package.py
repos/spack_repo/builtin/packages/hipfft/package.py
repos/spack_repo/builtin/packages/hipfort/package.py
repos/spack_repo/builtin/packages/hipify_clang/package.py
repos/spack_repo/builtin/packages/hiprand/package.py
repos/spack_repo/builtin/packages/hipsolver/package.py
repos/spack_repo/builtin/packages/hipsparse/package.py
repos/spack_repo/builtin/packages/hipsparselt/package.py
repos/spack_repo/builtin/packages/hpcx_mpi/package.py
repos/spack_repo/builtin/packages/hpx/package.py
repos/spack_repo/builtin/packages/hsa_amd_aqlprofile/package.py
repos/spack_repo/builtin/packages/hsa_rocr_dev/package.py
repos/spack_repo/builtin/packages/hugo/package.py
repos/spack_repo/builtin/packages/hypre/package.py
repos/spack_repo/builtin/packages/libcatalyst/package.py
repos/spack_repo/builtin/packages/libceed/package.py
repos/spack_repo/builtin/packages/libgeopm/package.py
repos/spack_repo/builtin/packages/libgeopmd/package.py
repos/spack_repo/builtin/packages/libvdwxc/package.py
repos/spack_repo/builtin/packages/libvips/package.py
repos/spack_repo/builtin/packages/llvm_amdgpu/package.py
repos/spack_repo/builtin/packages/m4/package.py
repos/spack_repo/builtin/packages/mapl/package.py
repos/spack_repo/builtin/packages/mercurial/package.py
repos/spack_repo/builtin/packages/mfem/package.py
repos/spack_repo/builtin/packages/mgard/package.py
repos/spack_repo/builtin/packages/migraphx/package.py
repos/spack_repo/builtin/packages/miopen_hip/package.py
repos/spack_repo/builtin/packages/mivisionx/package.py
repos/spack_repo/builtin/packages/nccl/package.py
repos/spack_repo/builtin/packages/neko/package.py
repos/spack_repo/builtin/packages/node_js/package.py
repos/spack_repo/builtin/packages/numactl/package.py
repos/spack_repo/builtin/packages/osu_micro_benchmarks/package.py
repos/spack_repo/builtin/packages/paraview/package.py
repos/spack_repo/builtin/packages/petsc/package.py
repos/spack_repo/builtin/packages/podio/package.py
repos/spack_repo/builtin/packages/py_amrex/package.py
repos/spack_repo/builtin/packages/py_arkouda/package.py
repos/spack_repo/builtin/packages/py_ase/package.py
repos/spack_repo/builtin/packages/py_dask/package.py
repos/spack_repo/builtin/packages/py_distributed/package.py
repos/spack_repo/builtin/packages/py_geopmdpy/package.py
repos/spack_repo/builtin/packages/py_geopmpy/package.py
repos/spack_repo/builtin/packages/py_mdanalysis/package.py
repos/spack_repo/builtin/packages/py_mdanalysistests/package.py
repos/spack_repo/builtin/packages/py_onnxruntime/package.py
repos/spack_repo/builtin/packages/py_pandas_stubs/package.py
repos/spack_repo/builtin/packages/py_petsc4py/package.py
repos/spack_repo/builtin/packages/py_rasterio/package.py
repos/spack_repo/builtin/packages/py_repligit/package.py
repos/spack_repo/builtin/packages/py_z3_solver/package.py
repos/spack_repo/builtin/packages/raja/package.py
repos/spack_repo/builtin/packages/rccl/package.py
repos/spack_repo/builtin/packages/rdc/package.py
repos/spack_repo/builtin/packages/realm/package.py
repos/spack_repo/builtin/packages/rocal/package.py
repos/spack_repo/builtin/packages/rocalution/package.py
repos/spack_repo/builtin/packages/rocblas/package.py
repos/spack_repo/builtin/packages/rocdecode/package.py
repos/spack_repo/builtin/packages/rocfft/package.py
repos/spack_repo/builtin/packages/rocjpeg/package.py
repos/spack_repo/builtin/packages/rocm_bandwidth_test/package.py
repos/spack_repo/builtin/packages/rocm_cmake/package.py
repos/spack_repo/builtin/packages/rocm_core/package.py
repos/spack_repo/builtin/packages/rocm_dbgapi/package.py
repos/spack_repo/builtin/packages/rocm_debug_agent/package.py
repos/spack_repo/builtin/packages/rocm_device_libs/package.py
repos/spack_repo/builtin/packages/rocm_examples/package.py
repos/spack_repo/builtin/packages/rocm_gdb/package.py
repos/spack_repo/builtin/packages/rocm_opencl/package.py
repos/spack_repo/builtin/packages/rocm_openmp_extras/package.py
repos/spack_repo/builtin/packages/rocm_smi_lib/package.py
repos/spack_repo/builtin/packages/rocm_tensile/package.py
repos/spack_repo/builtin/packages/rocm_validation_suite/package.py
repos/spack_repo/builtin/packages/rocminfo/package.py
repos/spack_repo/builtin/packages/rocmlir/package.py
repos/spack_repo/builtin/packages/rocprim/package.py
repos/spack_repo/builtin/packages/rocprofiler_compute/package.py
repos/spack_repo/builtin/packages/rocprofiler_dev/package.py
repos/spack_repo/builtin/packages/rocprofiler_register/package.py
repos/spack_repo/builtin/packages/rocprofiler_sdk/package.py
repos/spack_repo/builtin/packages/rocprofiler_systems/package.py
repos/spack_repo/builtin/packages/rocpydecode/package.py
repos/spack_repo/builtin/packages/rocrand/package.py
repos/spack_repo/builtin/packages/rocshmem/package.py
repos/spack_repo/builtin/packages/rocsolver/package.py
repos/spack_repo/builtin/packages/rocsparse/package.py
repos/spack_repo/builtin/packages/rocthrust/package.py
repos/spack_repo/builtin/packages/roctracer_dev/package.py
repos/spack_repo/builtin/packages/roctracer_dev_api/package.py
repos/spack_repo/builtin/packages/rocwmma/package.py
repos/spack_repo/builtin/packages/rpp/package.py
repos/spack_repo/builtin/packages/scorep/package.py
repos/spack_repo/builtin/packages/sentieon_genomics/package.py
repos/spack_repo/builtin/packages/strumpack/package.py
repos/spack_repo/builtin/packages/surfer/package.py
repos/spack_repo/builtin/packages/tau/package.py
repos/spack_repo/builtin/packages/texlive/package.py
repos/spack_repo/builtin/packages/thrift/package.py
repos/spack_repo/builtin/packages/transferbench/package.py
repos/spack_repo/builtin/packages/ufs_weather_model/package.py
repos/spack_repo/builtin/packages/umpire/package.py
repos/spack_repo/builtin/packages/vasp/package.py
repos/spack_repo/builtin/packages/verible/package.py
repos/spack_repo/builtin/packages/verilator/package.py
repos/spack_repo/builtin/packages/warpx/package.py
repos/spack_repo/builtin/packages/whip/package.py
�[1;34m==> �[0mrunning flake8
repos/spack_repo/builtin/packages/realm/package.py:208: [E501] line too long (106 > 99 characters)
�[1;34m==> �[0mrunning isort
�[1;34m==> �[0mrunning black
I've updated the branch with style fixes. |
|
@elliottslaughter as mentioned in the Realm PR, this is ready for review. This PR now requires that change proposed to Realm. |
|
The Realm PR has been merged. |
Co-authored-by: Elliott Slaughter <[email protected]>
|
@elliottslaughter this is ready to go from my point of view. |
|
I'm not a core Spack developer, but the Realm pieces of this look good to me. |
|
@elliottslaughter @muraj should someone from NVIDIA be marked as the Spack package maintainer? |
tldahlgren
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Confirmed the homepage, version branch, and all variants are used.
@rbberger @elliottslaughter Is this PR ready to merge?
Ping me when this is ready to merge. |
|
@rbberger I've been asking around but no one on the NVIDIA side has Spack experience. I suppose you could add me, I have some interest in making this work (for Legion), but I am not a Realm maintainer per se. |
We discussed this in the Realm meeting today. I don't think we're going to list any one person as the maintainer because we didn't really help with creating the package. However, @apryakhin is setting up a public mailing list for Realm issues, and once he does that then we can list that as a point of contact if people have issues and we'll distribute the issues as best we can. |
Extracted from #1231 without explicit changes to the GASNet Spack package. We can get this one merged without waiting on GASNet changes. This one also defaults to using NVCC as cuda compiler. Not adding any released version, since there is only a RC tag at the moment.
@muraj @elliottslaughter